import express from "express";

// 控制器
import * as bookController from "../controllers/bookController";
import * as authorController from "../controllers/authorController";
import * as genreController from "../controllers/genreController";
import * as bookinstanceController from "../controllers/bookinstanceController";

const router = express.Router();

/// 图书路由 ///
// 获取图书编目主页
router.get("/", bookController.index);

// 请求添加新的图书，注意此项需要放在显示图书列表的路由之前
router.get("/book/create", bookController.book_create_get);

// 请求添加新的图书
router.post("/book/create", bookController.book_create_post);

// 请求删除图书
router.get("/book/:id/delete", bookController.book_delete_get);

// 请求删除图书
router.post("/book/:id/delete", bookController.book_delete_post);

// 请求更新图书
router.get("/book/:id/update", bookController.book_update_get);

// 请求更新图书
router.post("/book/:id/update", bookController.book_update_post);

// 请求图书
router.get("/book/:id", bookController.book_detail);

// 图书列表
router.get("/books", bookController.book_list);

/// 作者路由 ///

// 用于创建作者的 GET 请求。注意这必须在 id 的路由之前（比如说显示作者）
router.get("/author/create", authorController.author_create_get);

// 创建作者的 POST 请求。
router.post("/author/create", authorController.author_create_post);

// 删除作者的 GET 请求。
router.get("/author/:id/delete", authorController.author_delete_get);

// POST 请求删除作者。
router.post("/author/:id/delete", authorController.author_delete_post);

// 更新作者的 GET 请求。
router.get("/author/:id/update", authorController.author_update_get);

// POST 请求更新作者。
router.post("/author/:id/update", authorController.author_update_post);

// 获取一个作者的 GET 请求。
router.get("/author/:id", authorController.author_detail);

// 获取所有作者列表的 GET 请求。
router.get("/authors", authorController.author_list);

/// 流派路由 ///

// 用于创建流派的 GET 请求。注意：这必须在显示流派的路由之前（使用 id 的路由）。
router.get("/genre/create", genreController.genre_create_get);

// POST 请求创建 Genre。
router.post("/genre/create", genreController.genre_create_post);

// 删除流派的 GET 请求。
router.get("/genre/:id/delete", genreController.genre_delete_get);

// POST 请求删除 Genre。
router.post("/genre/:id/delete", genreController.genre_delete_post);

// 更新流派的 GET 请求。
router.get("/genre/:id/update", genreController.genre_update_get);

// 更新流派的 POST 请求。
router.post("/genre/:id/update", genreController.genre_update_post);

// 获取一个流派的 GET 请求。
router.get("/genre/:id", genreController.genre_detail);

// 获取所有流派列表的 GET 请求
router.get("/genres", genreController.genre_list);

/// BOOKINSTANCE 路由 ///

// 用于创建 BookInstance 的 GET 请求。注意：这必须在显示 BookInstance 的路由之前（使用 id 的路由）。
router.get(
  "/bookinstance/create",
  bookinstanceController.bookinstance_create_get
);

// 创建 BookInstance 的 POST 请求。
router.post(
  "/bookinstance/create",
  bookinstanceController.bookinstance_create_post
);

// 删除 BookInstance 的 GET 请求。
router.get(
  "/bookinstance/:id/delete",
  bookinstanceController.bookinstance_delete_get
);

// POST 请求删除 BookInstance。
router.post(
  "/bookinstance/:id/delete",
  bookinstanceController.bookinstance_delete_post
);

// 更新 BookInstance 的 GET 请求。
router.get(
  "/bookinstance/:id/update",
  bookinstanceController.bookinstance_update_get
);

// 更新 BookInstance 的 POST 请求。
router.post(
  "/bookinstance/:id/update",
  bookinstanceController.bookinstance_update_post
);

// 一个 BookInstance 的 GET 请求。
router.get("/bookinstance/:id", bookinstanceController.bookinstance_detail);

// GET 请求获取所有 BookInstance 的列表。
router.get("/bookinstances", bookinstanceController.bookinstance_list);

export default router;
